Python读取PDF中的表格并写入csv文件 您所在的位置:网站首页 python 读取文件csv Python读取PDF中的表格并写入csv文件

Python读取PDF中的表格并写入csv文件

2022-05-03 18:45| 来源: 网络整理| 查看: 265

以前各种在网上找专门的软件来从PDF中收集数据,费时费力,还要费尽心机去找软件的“免费版”。很久没这样收集过数据了,最近试了试python从PDF中读取表格的方法,感觉很方便。同时,读取后的结果不需要再花大力气去弄格式的问题,实在是科研狗狗的福利了。

Python读取PDF中的表格

比如在我的一篇文献中某一页有一张我想收集数据的表:

pdf中的表格和页数

注意这里的实际页数是5。

tabula

我们使用比较流行的tabula来完成这项工作,同样功能的还有Camelot,但因为tabula用得很顺畅,就不再去深究了。

安装tabula:读取文件

r的意思参考:https://www.geocalculate.com/7597.html

结果

可以看出,读取后的结果是一个列表。

将数据写入.csv文件

要将数据写入csv文件,数据最好是pandas的DataFrame形式,但上面我们得到的是一个列表,要怎么转化呢?

其实很简单,并不要转化,上面我们的len(tables)函数告诉我们这个列表里只有一个元素,所以我们使用tables[0]直接选择元素就获得了纯的数据:

class 'pandas.core.frame.DataFrame':说明我们一旦选择之后,数据就是pandas的DataFrame的。

现在,在PDF相同目录下,将数据写入一个csv文件,该csv文件目前不存在:

这时再来看目录里,已经生成了csv文件:

生成的csv文件

打开看看:

写入csv中的数据

十分成功。

一些想法tabula.convert_into函数

实际上tabula自己就可以实现将数据写入csv文件的函数,比如:

但是,当我们需要处理不同的表格(有不同的数据)时,个人感觉还是用选择一下生成到不同的表里好区分一些。

读取年份比较久的PDF

一些老的pdf也是可以读的,但是可能会有些小的问题,比如一个表格被读成了两个,这时候上面的选择操作就更有必要了,同时,在我一开始的时候,使用了len(tables)来查看获得列表的长度也是这个目的。

参考

https://tabula-py.readthedocs.io/en/latest/

https://www.geocalculate.com/7204.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有